package com.wx.fresh.custom.controller;


import com.wx.fresh.common.util.CommonResult;
import com.wx.fresh.custom.vo.userVo.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;

/**
 * custom用户模块controller
 *
 * @author salthe
 * @date 2022/4/21
 */
@Api(value = "custom用户模块")
@Controller
@RequestMapping("/customUser")
public class CustomerUserController {

    @ApiOperation(value = "添加收藏")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "productId", value = "商品id", required = true, paramType = "form")
    })
    @GetMapping("/addCollect")
    public CommonResult addCollect(@RequestBody CustomAddCollectVO collect) {
        return null;
    }

    @ApiOperation(value = "获取收藏夹", response = CustomCollectOutVO.class)
    @ApiImplicitParams({
            @ApiImplicitParam(name = "userId", value = "用户id", required = true, paramType = "form")
    })
    @GetMapping("/getCollect")
    public CommonResult<CustomCollectOutVO> getCollect(@RequestBody CustomGetCollectVO collect) {
        return null;
    }


    @ApiOperation(value = "获取定位", response = CustomLocationOutVO.class)
    @ApiImplicitParams({
            @ApiImplicitParam(name = "latitude", value = "经度", required = true, paramType = "form"),
            @ApiImplicitParam(name = "longitude", value = "纬度", required = true, paramType = "form")
    })
    @GetMapping("/location")
    public CommonResult<CustomLocationOutVO> location(@RequestBody CustomLocationVO location) {
        return null;
    }

    @ApiOperation(value = "添加购物车")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "userId", value = "用户id", required = true, paramType = "from"),
            @ApiImplicitParam(name = "productVo", value = "商品", required = true, paramType = "form")
    })
    @GetMapping("/addCart")
    public CommonResult addCart(@RequestBody CustomAddCartVO cart) {
        return null;
    }

    @ApiOperation(value = "查看购物车", response = CustomCartOutVO.class)
    @ApiImplicitParams({
            @ApiImplicitParam(name = "userId", value = "用户id", required = true, paramType = "form")
    })
    @GetMapping("/getCart")
    public CommonResult<CustomCartOutVO> getCart(@RequestBody CustomGetCartVO cart) {
        return null;
    }

    @ApiOperation(value = "获取个人信息", response = CustomInfoOutVO.class)
    @ApiImplicitParams({
            @ApiImplicitParam(name = "userId", value = "用户id", required = true, paramType = "form")
    })
    @GetMapping("/getInfo")
    public CommonResult<CustomInfoOutVO> info(@RequestBody CustomGetInfoVO info) {
        return null;
    }

    @ApiOperation(value = "修改个人信息")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "userId", value = "用户id", required = true, paramType = "form"),
            @ApiImplicitParam(name = "headImg", value = "用户头像", required = true, paramType = "form"),
            @ApiImplicitParam(name = "name", value = "用户昵称", required = true, paramType = "form"),
            @ApiImplicitParam(name = "info", value = "用户简介", required = true, paramType = "form"),
            @ApiImplicitParam(name = "phone", value = "用户电话", required = true, paramType = "form")
    })
    @GetMapping("/updateInfo")
    public CommonResult updateInfo(@RequestBody CustomUpdateInfoVO info) {
        return null;
    }

    @ApiOperation(value = "获取收货地址", response = CustomAddressOutVO.class)
    @ApiImplicitParams({
            @ApiImplicitParam(name = "userId", value = "用户id", required = true, paramType = "form")
    })
    @GetMapping("/getAddress")
    public CommonResult<CustomAddressOutVO> getAddress(@RequestBody CustomGetAddressVO address) {
        return null;
    }

    @ApiOperation(value = "添加收货地址")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "userId", value = "用户id", required = true, paramType = "form"),
            @ApiImplicitParam(name = "address", value = "地址", required = true, paramType = "form"),
            @ApiImplicitParam(name = "doorplate", value = "门牌号", required = true, paramType = "form"),
            @ApiImplicitParam(name = "phone", value = "用户电话", required = true, paramType = "form"),
            @ApiImplicitParam(name = "name", value = "用户昵称", required = true, paramType = "form"),
            @ApiImplicitParam(name = "latitude", value = "经度", required = true, paramType = "form"),
            @ApiImplicitParam(name = "longitude", value = "纬度", required = true, paramType = "form"),
            @ApiImplicitParam(name = "sex", value = "用户性别", required = true, paramType = "form")
    })
    @GetMapping("/addAddress")
    public CommonResult addAddress(@RequestBody CustomAddAddressVO address) {
        return null;
    }

    @ApiOperation(value = "修改收货地址")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "addressId", value = "收货地址id", required = true, paramType = "form"),
            @ApiImplicitParam(name = "address", value = "地址", required = true, paramType = "form"),
            @ApiImplicitParam(name = "doorplate", value = "门牌号", required = true, paramType = "form"),
            @ApiImplicitParam(name = "phone", value = "用户电话", required = true, paramType = "form"),
            @ApiImplicitParam(name = "name", value = "用户昵称", required = true, paramType = "form"),
            @ApiImplicitParam(name = "latitude", value = "经度", required = true, paramType = "form"),
            @ApiImplicitParam(name = "longitude", value = "纬度", required = true, paramType = "form"),
            @ApiImplicitParam(name = "sex", value = "用户性别", required = true, paramType = "form")
    })
    @GetMapping("/updateAddress")
    public CommonResult updateAddress(@RequestBody CustomUpdateAddressVO address) {
        return null;
    }
}
